//
// Created by ASUS on 2024/5/8/星期三.
//
#include <bits/stdc++.h>
using namespace std;

int commonSubsequence(vector<int>& nums1,vector<int>& nums2) {
    int m = nums1.size(), n = nums2.size();
    vector<vector<int>> dp(m + 1, vector<int>(n + 1));
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (nums1[i] == nums2[j]) {
                dp[i+1][j+1] = dp[i][j] + 1;
            } else {
	            dp[i+1][j+1] = max(dp[i+1][j], dp[i][j + 1]);
            }
        }
    }
    return dp[m][n];
}